package com.xuxueli.commontdemo.commont.testSocket;
import com.xuxueli.commontdemo.entity.UserSocket;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class MyServer {
    public static void main(String[] args) throws IOException {
        // 监听10000端口
        ServerSocket server=new ServerSocket(1020);
        while(true) {
            //接收客户端的连接
            Socket socket=server.accept();
            //调用客户端的数据处理方法
            invoke(socket);
        }
    }
    private static void invoke(final Socket socket){
        //开启一个新线程
        new Thread(new Runnable() {
            public void run() {
                //创建输入流对象
                ObjectInputStream is=null;
                //创建输出流对象
                ObjectOutputStream os=null;
                try {
                    is=new ObjectInputStream(socket.getInputStream());
                    os=new ObjectOutputStream(socket.getOutputStream());
                    //读取一个对象
                    Object obj = is.readObject();
                    //将对象转换为User类型
                    UserSocket user=(UserSocket) obj;
                    //在服务器端输出name成员和password成员信息
                    System.out.println("接受客户端user: "+user.getUsername()+"/"+user.getPassword());
                    //修改当前对象的name成员数据
                    user.setUsername(user.getUsername()+"_new");
                    //修改当前对象的password对象数据
                    user.setPassword(user.getPassword()+"_new");
                    //将修改后的对象输出给客户端
                    os.writeObject(user);
                    os.flush();
                } catch(IOException|ClassNotFoundException ex) {
                    ex.printStackTrace();
                } finally {
                    try {
                        //关闭输入流
                        is.close();
                        //关闭输出流
                        os.close();
                        //关闭客户端
                        socket.close();
                    } catch(Exception ex){}
                }
            }
        }).start();
    }
}